Port GAIA lint/format standards and refactor src to match#8
Merged
stevensacks merged 2 commits intomainfrom Apr 29, 2026
Merged
Port GAIA lint/format standards and refactor src to match#8stevensacks merged 2 commits intomainfrom
stevensacks merged 2 commits intomainfrom
Conversation
Adopts the relevant subset of GAIA's tooling — ESLint v9 + Prettier 3 via @gaia-react/lint, plus Claude Code skills/rules/hooks/agents — and refactors src to satisfy the new rule surface end to end. - pnpm migration (npm → pnpm 10.33.0; pages.yml updated to pnpm/action-setup) - @gaia-react/lint ^1.1.1 wired in via eslint.config.mjs (base, react, styleHygiene, guardrails, betterTailwind, prettier exports) - prettier 3 with prettier-plugin-tailwindcss - 31 components converted from `export default function Name()` to `const Name = () => …; export default Name;` - ~40 mechanical refactors across src to clear the lint surface (FC typing, type imports, component extraction, no-use-before-define, arrow-body-style, etc.) - Custom marquee CSS lifted from inline style block into styles.css - styles.css augmented with reduced-motion override - Curly apostrophes replacing straight `'` across marketing copy Verified: pnpm lint-all (typecheck + eslint + prettier) and pnpm build (all 7 Vite entry points) both clean. Visual smoke tested via Playwright against landing and /consulting routes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Move 24 sections into per-page folders (home, docs, features, about, consulting, get-started, roadmap); shared Closing stays at top - Drop unused StackRow.tsx - Rename @theme color tokens to non-stuttering roles (canvas/surface/ink/muted/line) and sweep all utility usage - Replace template-literal classNames with twJoin (adds tailwind-merge); fixes a missing-space bug in Stack hover state - Convert px arbitrary values to canonical Tailwind units or rem - Replace bg-[rgba(...)] accent literal with bg-accent/18 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adopts the relevant subset of GAIA's tooling — ESLint v9 + Prettier 3 via
@gaia-react/lint, plus Claude Code skills/rules/hooks/agents — and refactorssrc/to satisfy the new rule surface end to end. The full RR7/i18n/Conform/Vitest/Storybook stack from GAIA was deemed overkill for a 7-page Vite multi-entry marketing site and intentionally omitted.Tooling spine
package-lock.json→pnpm-lock.yaml; GitHub Pages workflow updated topnpm/action-setup@v4withcache: pnpm@gaia-react/lint^1.1.1 wired in viaeslint.config.mjs, consumingbase,react,styleHygiene,guardrails,betterTailwind,prettier,ignoresexportsprettier-plugin-tailwindcssfor class sortingeslint.config.mjsandprettier.config.mjsRefactor
export default function Name() { … }toconst Name = () => …; export default Name;to matchprefer-arrow-functionsintent (closes the upstream gap also addressed in gaia-react/lint#6)src/to clear the lint surface: FC typing, type imports, component extraction order, no-use-before-define, arrow-body-style, curly-apostrophe replacements in marketing copy<style>intostyles.csswithprefers-reduced-motionoverrideVerification
pnpm lint-all(typecheck + eslint + prettier) — cleanpnpm build— all 7 Vite entry points build successfully/consulting/render correctly🤖 Generated with Claude Code